def gen_func():
    # 1.可以产出值， 2.可以接收值（调用方传递进来的值）
    # yield 1
    html = yield "http://projectedu.com"
    print(html)
    yield 2
    yield 3
    return "bobby"
# 1.throw close

# 1.生成器不只可以产出值，还可以接收值


if __name__ == '__main__':
    gen = gen_func()
    # 在调用send发送非none值之前，我们必须启动一次生成器，方式有两种：1.gen.send(None),2.next(gen)

    # url = next(gen)
    url = gen.send(None)
    # download url
    html = "bobby"
    # send方法可以传递值进入生成器内部，同时还可以重启生成器执行到下一个yield位置
    print(gen.send(html))
    # 1.启动生成器方式有两种，next(),send

    # print(next(gen))
    # print(next(gen))
    # print(next(gen))
    # print(next(gen))